home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 32 / Amiga Format AFCD32 (Nov 1998, Issue 117).iso / -seriously_amiga- / programming / e / newgui / src / examples / elements.e < prev    next >
Text File  |  1998-08-10  |  10KB  |  283 lines

  1. /* 
  2.  *  Showing some NewGUI-Features
  3.  * -============================-
  4.  * 
  5.  * 
  6.  */
  7.  
  8. OPT     OSVERSION = 37
  9. OPT     LARGE
  10. OPT     PREPROCESS                      -> Needed for the gfxmacros.m
  11.  
  12. MODULE  'graphics/rastport'             -> Needed for the gfxmacros.m
  13. MODULE  'graphics/gfxmacros'            -> Needed for the SetAfPt()-Function
  14. MODULE  'libraries/gadtools'            -> Expected for the newmenu-object
  15. MODULE  'newgui/newgui'                 -> The main gui engine
  16. MODULE  'newgui/ng_showerror'           -> reports error-codes to con:
  17.  
  18. ENUM    GUI_MAIN = 1,
  19.         GUI_BEVELS,
  20.         GUI_FILLGROUPS,
  21.         GUI_STANDART
  22.  
  23. DEF     menu=NIL:PTR TO newmenu
  24.  
  25. DEF     string[20]:STRING
  26.  
  27. PROC main()     HANDLE
  28.  makemenu()
  29.   opengui()
  30.  
  31. EXCEPT DO
  32.   IF exception THEN ng_showerror(exception)
  33.  CleanUp(exception)
  34. ENDPROC
  35.  
  36. PROC makemenu()
  37. ENDPROC
  38.  
  39. PROC opengui()
  40.  newguiA([
  41.         NG_WINDOWTITLE,         'Gui-Elements',
  42.         NG_GUIID,               GUI_MAIN,
  43.         NG_MENU,                menu,
  44.         NG_GUI,                 
  45.                 [EQROWS,
  46.                         [SBUTTON,{openwin},'Bevelboxes',GUI_BEVELS],
  47.                         [SBUTTON,{openwin},'Fillgroups',GUI_FILLGROUPS],
  48.                         [SBUTTON,{openwin},'Standart',GUI_STANDART]
  49.                 ],
  50.         NG_NEXTGUI,
  51. ->
  52.        [NG_WINDOWTITLE,         'Bevel-Boxes',
  53.         NG_USEMAINMENU,         TRUE,
  54.         NG_GUIID,               GUI_BEVELS,
  55.         NG_GUI,
  56. ->
  57.                 [EQROWS,
  58.                 [EQCOLS,
  59.                 [BEVEL,
  60.                 [EQROWS,
  61.                         [TEXT,'Box','Bevel',FALSE,3]
  62.                 ]
  63.                 ],
  64.                 [DBEVEL,
  65.                 [EQROWS,
  66.                         [TEXT,'BevelBox','Double',FALSE,3]
  67.                 ]
  68.                 ]
  69.                 ],
  70.                 [EQCOLS,
  71.                 [ROWS,
  72.                 [BAR]],
  73.                         [TEXT,'Bar','Simple',FALSE,0],
  74.                 [ROWS,
  75.                 [BAR]]
  76.                 ],
  77.                 [EQCOLS,
  78.                 [BEVELR,
  79.                 [EQROWS,
  80.                         [TEXT,'BevelBox','Recessed',FALSE,3]
  81.                 ]
  82.                 ],
  83.                 [DBEVELR,
  84.                 [EQROWS,
  85.                         [TEXT,'DoubleBevel','Recessed',FALSE,3]
  86.                 ]
  87.                 ]
  88.                 ],
  89.                 [EQCOLS,
  90.                 [ROWS,
  91.                 [BARR]],
  92.                         [TEXT,'Bar','Recessed',FALSE,0],
  93.                 [ROWS,
  94.                 [BARR]]
  95.                 ],
  96.                 [EQCOLS,
  97.                 [SPACEH],
  98.                         [SBUTTON,0,'Close'],
  99.                 [SPACEH]
  100.                 ]
  101.                 ],
  102.         NG_NEXTGUI,
  103. ->
  104.        [NG_WINDOWTITLE,         'Fillgroups',
  105.         NG_USEMAINMENU,         TRUE,
  106.         NG_GUIID,               GUI_FILLGROUPS,
  107.         NG_FILLHOOK,            {fillrect},
  108.         NG_GUI,
  109.                 [ROWS,
  110.                 [BEVELR,
  111.                 [FILLGROUP1,
  112.                 [ROWS,
  113.                         [TEXT,'are free definable by the developer','The Patterns and colors',FALSE,3],
  114.                         [TEXT,'window-backdrop (filling)','Have a look at the',FALSE,3]]
  115.                 ]],
  116.                 [EQCOLS,
  117.                 [DBEVELR,
  118.                 [FILLGROUP1,
  119.                 [ROWS,
  120.                         [TEXT,'1','Group',FALSE,0]
  121.                 ]]],
  122.                 [DBEVELR,
  123.                 [FILLGROUP2,
  124.                 [ROWS,
  125.                         [TEXT,'2','Group',FALSE,0]
  126.                 ]]],
  127.                 [DBEVELR,
  128.                 [FILLGROUP3,
  129.                 [ROWS,
  130.                         [TEXT,'3','Group',FALSE,0]
  131.                 ]]]],
  132.                 [EQCOLS,
  133.                 [DBEVELR,
  134.                 [FILLGROUP4,
  135.                 [ROWS,
  136.                         [TEXT,'4','Group',FALSE,0]
  137.                 ]]],
  138.                 [DBEVELR,
  139.                 [FILLGROUP5,
  140.                 [ROWS,
  141.                         [TEXT,'5','Group',FALSE,0]
  142.                 ]]],
  143.                 [DBEVELR,
  144.                 [FILLGROUP6,
  145.                 [ROWS,
  146.                         [TEXT,'6','Group',FALSE,0]
  147.                 ]]]],
  148.                 [BEVELR,
  149.                 [EQCOLS,
  150.                 [SPACEH],
  151.                         [SBUTTON,0,'Close'],
  152.                 [SPACEH]
  153.                 ]
  154.                 ]
  155.                 ],
  156.         NG_NEXTGUI,
  157. ->
  158.        [NG_WINDOWTITLE,         'Standart-Elements',
  159.         NG_USEMAINMENU,         TRUE,
  160.         NG_GUIID,               GUI_STANDART,
  161.         NG_GUI,
  162.                 [ROWS,
  163.                 [COLS,
  164.                 [ROWS,
  165.                         [TEXT,'without Bevel','Text',FALSE,3],
  166.                         [TEXT,'with Bevel','Text',TRUE,3]],
  167.                 [ROWS,
  168.                         [NUM,999,'Number without Bevel',FALSE,3],
  169.                         [NUM,123,'Number with Bevel',TRUE,3]]],
  170.                 [BAR],
  171.                 [EQCOLS,
  172.                 [COLS,
  173.                         [RBUTTON,0,'Button with Free Height'],
  174.                 [SPACEH]],
  175.                 [ROWS,
  176.                 [COLS,
  177.                         [BUTTON,0,'Fixed Button'],
  178.                 [SPACEH]],
  179.                         [SBUTTON,0,'Button with free Width']
  180.                 ]],
  181.                 [BAR],
  182.                         [PALETTE,0,'Palette:',3,5,2,0],
  183.                 [BAR],
  184.                 [COLS,
  185.                         [MX,0,'MX:',['one','two','three','four',NIL],FALSE,1],
  186.                 [ROWS,
  187.                         [CYCLE,0,'Cycle:',['one','two','three','four',NIL],1],
  188.                         [CHECK,0,'Check:',FALSE,FALSE]
  189.                 ]
  190.                 ],
  191.                 [BAR],
  192.                 [COLS,
  193.                         [LISTV,0,'ListView:',NIL,2,2,NIL,FALSE,0,0],
  194.                 [BARR],
  195.                 [ROWS,
  196.                         [SCROLL,0,FALSE,10,0,2,2],
  197.                         [SLIDE,0,'Slider:     ',FALSE,0,999,20,2,'%3ld'],
  198.                 [BAR],
  199.                         [STR,0,'String:',string,10,2],
  200.                         [INTEGER,0,'Integer:',5,3]
  201.                 ]],
  202.                 [BAR],
  203.                 [EQCOLS,
  204.                 [SPACEH],
  205.                         [SBUTTON,0,'Close'],
  206.                 [SPACEH]
  207.                 ]
  208.                 ],
  209.         NIL,NIL],
  210. ->        
  211.         NIL,NIL,
  212. ->
  213.         NIL,NIL],        
  214. ->
  215.         NIL,NIL],
  216. ->
  217.         NIL,NIL])
  218. ENDPROC
  219.  
  220. PROC openwin(id,gui)                                    -> Open a window dynamic (from the given id!)
  221.  ng_setattrsA([
  222.         NG_GUI,         gui,
  223.         NG_CHANGEGUI,   NG_OPENGUI,
  224.         NG_GUIID,       id,
  225.         NIL,            NIL])
  226. ENDPROC
  227.  
  228. PROC fillrect(rp,x,y,width,height,type)
  229.  DEF    oldbpen=0,
  230.         oldapen=1
  231.   SELECT        type
  232.         CASE    NG_FILL_WINDOW                          -> Window-Filling (Back)
  233.          oldbpen:=SetBPen(rp,0)                         -> Set Backpen to gray
  234.           oldapen:=SetAPen(rp,3)                        -> Set Frontpen to blue
  235.            SetAfPt(rp,[$AAAA,$5555]:INT,1)              -> Set Pattern (ATTENTION! Macro-Definition in gfxmacros.m, this need OPT PREPROCESS!!!)
  236.             RectFill(rp,x,y,width,height)               -> Now fill the Region!
  237.            SetBPen(rp,oldbpen)                          -> Set the Backpen to the old value
  238.           SetAPen(rp,oldapen)                           -> Set the Frontpen to the old value
  239.         CASE    FILLGROUP1                              -> Fill the Group 1
  240.          oldbpen:=SetBPen(rp,0)                         -> Set BackPen to gray
  241.           oldapen:=SetAPen(rp,0)                        -> Set Frontpen to gray
  242.            SetAfPt(rp,[$FFFF,$FFFF]:INT,1)              -> ...
  243.             RectFill(rp,x,y,width,height)               -> ...
  244.            SetBPen(rp,oldbpen)                          -> ...
  245.           SetAPen(rp,oldapen)                           -> ...
  246.         CASE    FILLGROUP2                              -> Fill the Group 2
  247.          oldbpen:=SetBPen(rp,3)                         -> Set the Backpen to blue
  248.           oldapen:=SetAPen(rp,2)                        -> Set the Frontpen to white
  249.            SetAfPt(rp,[$AAAA,$5555]:INT,1)              -> ...
  250.             RectFill(rp,x,y,width,height)               -> ...
  251.            SetBPen(rp,oldbpen)                          -> ...
  252.           SetAPen(rp,oldapen)                           -> ...
  253.         CASE    FILLGROUP3                              -> Fill the Group 3
  254.          oldbpen:=SetBPen(rp,3)                         -> Set the Backpen to blue
  255.           oldapen:=SetAPen(rp,0)                        -> Set the Frontpen to gray
  256.            SetAfPt(rp,[$AAAA,$5555]:INT,1)              -> ...
  257.             RectFill(rp,x,y,width,height)               -> ...
  258.            SetBPen(rp,oldbpen)                          -> ...
  259.           SetAPen(rp,oldapen)                           -> ...
  260.         CASE    FILLGROUP4                              -> Fill the Group 4
  261.          oldbpen:=SetBPen(rp,3)                         -> Set the Backpen to blue
  262.           oldapen:=SetAPen(rp,7)                        -> Set the Frontpen to mwb-color 7
  263.            SetAfPt(rp,[$AAAA,$5555]:INT,1)              -> ...
  264.             RectFill(rp,x,y,width,height)               -> ...
  265.            SetBPen(rp,oldbpen)                          -> ...
  266.           SetAPen(rp,oldapen)                           -> ...
  267.         CASE    FILLGROUP5                              -> Fill the Group 5
  268.          oldbpen:=SetBPen(rp,0)                         -> Set the Backpen to gray
  269.           oldapen:=SetAPen(rp,7)                        -> Set the Frontpen to mwb-color 7
  270.            SetAfPt(rp,[$AAAA,$5555]:INT,1)              -> ...
  271.             RectFill(rp,x,y,width,height)               -> ...
  272.            SetBPen(rp,oldbpen)                          -> ...
  273.           SetAPen(rp,oldapen)                           -> ...
  274.         CASE    FILLGROUP6                              -> Fill the Group 6
  275.          oldbpen:=SetBPen(rp,3)                         -> Set the Backpen to blue
  276.           oldapen:=SetAPen(rp,6)                        -> Set the Frontpen to mwb-color 6
  277.            SetAfPt(rp,[$AAAA,$5555]:INT,1)              -> ...
  278.             RectFill(rp,x,y,width,height)               -> ...
  279.            SetBPen(rp,oldbpen)                          -> ...
  280.           SetAPen(rp,oldapen)                           -> ...
  281.    ENDSELECT
  282. ENDPROC
  283.